package com.xxl.job.executor.config;

import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

import java.util.Collections;

/**
 * 自动生成mybatisplus的相关代码
 */
public class GeneratorCodeConfig {

  public static void main(String[] args) {
    FastAutoGenerator.create(
            "jdbc:mysql://127.0.0.1:3308/demo?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8",
            "root",
            "root")
        .globalConfig(builder -> {
          builder.author("zhouhaicheng") // 设置作者
              .enableSwagger() // 开启 swagger 模式
              .fileOverride() // 覆盖已生成文件
              .outputDir("D:\\workspace\\xxl-job\\xxl-job-executor-samples\\xxl-job-executor-sample-springboot\\src\\main\\java"); // 指定输出目录
        })
        .packageConfig(builder -> {
          builder.parent("com.xxl.job.executor") // 设置父包名
              //.moduleName("system") // 设置父包模块名
              //.mapper("")
              .pathInfo(Collections.singletonMap(OutputFile.mapperXml, "D:\\workspace\\xxl-job\\xxl-job-executor-samples\\xxl-job-executor-sample-springboot\\src\\main\\resources")); // 设置mapperXml生成路径
        })
        .strategyConfig(builder -> {
          builder.addInclude("goods","types"); // 设置需要生成的表名
              //.addTablePrefix("t_", "c_"); // 设置过滤表前缀
        })
        .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板，默认的是Velocity引擎模板
        .execute();
  }
}